<template>
  <div id="cesiumContainer" ref="cesiumContainer"></div>
</template>

<script setup>
import { onMounted, ref } from 'vue'
import * as Cesium from 'cesium'
import "./Widgets/widgets.css"
// 设置静态资源路径
window.CESIUM_BASE_URL = "/"

Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJjZTkyZDVmZS03MGNiLTQ4YmQtYTUwMS02YTI0Y2E4OTE2YjciLCJpZCI6MjY1MjI2LCJpYXQiOjE3MzUyODM3MDJ9.HX2jU9DxJdbu9WYQW9iFkLTvSgJtTnBehN89Da7ImUw'

// 设置cesium默认视角
// Cesium.Camera.DEFAULT_VIEW_RECTANGLE = Cesium.Rectangle.fromDegrees(
//   89.5,  //西边经度
//   20.4,   //南边纬度
//   110.4,  //东边经度
//   61.2  //北边纬度
// )

onMounted(async () => {
  console.log(Cesium)
  var token = 'ee20013ff03e7d98b23e1251bc0b7cea';
  var tdtUrl = 'https://t{s}.tianditu.gov.cn/';
  var subdomains = ['0', '1', '2', '3', '4', '5', '6', '7'];
  const viewer = new Cesium.Viewer('cesiumContainer', {
    // 是否显示信息窗口
    infoBox: false,
    // 搜索按钮
    geocoder: false,
    // home按钮
    homeButton: false,
    // 控制查看器显示模式
    sceneModePicker: false,
    // 是否显示涂层选择器
    baseLayerPicker: false,
    // 是否显示动画控件
    animation: false,
    // 是否显示帮助按钮
    navigationHelpButton: false,
    // 全屏按钮
    fullscreenButton: false,
    // 是否显示VR控件
    // vrButton:false,
    // 是否显示时间轴控件
    timeline: false,
    sunLightFlag: true, //太阳光照开关
    globeFlag: true,
    // 设置天空盒子
    skyBox: new Cesium.SkyBox({
      sources: {
        positiveX: require('@/assets/SkyBox/px.png'),
        negativeX: require('@/assets/SkyBox/nx.png'),
        positiveY: require('@/assets/SkyBox/ny.png'),
        negativeY: require('@/assets/SkyBox/py.png'),
        positiveZ: require('@/assets/SkyBox/pz.png'),
        negativeZ: require('@/assets/SkyBox/nz.png'),
      }
    }),
    // 控制默认地图显示
    // imageryProvider: false,
    terrainProvider: await Cesium.createWorldTerrainAsync({
      requestVertexNormals: true,
      requestWaterMask: true
    })

  })
  // 117.96587800, 40.18911900
  // 隐藏logo
  viewer.cesiumWidget.creditContainer.style.display = 'none'
  //   //  将三维球定位到中国
  viewer.camera.flyTo({
    destination: Cesium.Cartesian3.fromDegrees(116.56432606, 39.90923611, 5000),
    // cesium 构件的是一个三维场景 视角应该有三个角度 （方位角，俯仰角，滚动角）
    orientation: {
      // 方位角
      heading: Cesium.Math.toRadians(300),
      //俯仰角
      pitch: Cesium.Math.toRadians(-90),
      //滚动角
      roll: Cesium.Math.toRadians(0)
    },
    complete: function callback() {
      // 定位完成之后的回调函数
    }
  });


// 画一条线
  viewer.entities.add({
    id: 'line',
    polyline: {
      positions: Cesium.Cartesian3.fromDegreesArray(
        [116.56432606, 39.90923611,114.30456900, 30.59335400]
      ),
      width: 5,
      material: Cesium.Color.RED
    }
  })
// 画一个面
viewer.entities.add({
  id:"rectangle",
  rectangle: {
    coordinates: Cesium.Rectangle.fromDegrees(
      114.30456900, 30.59335400,116.56432606, 39.90923611
    ),
    material: Cesium.Color.BLUE.withAlpha(0.5),
    outline: true,
    outlineColor: Cesium.Color.BLUE,
    outlineWidth: 2,
    extrudedHeight:1000,
    height:2000
  }
})


})

</script>

<style>
* {
  margin: 0;
  padding: 0;
}

#cesiumContainer {
  width: 100vw;
  height: 100vh;
}
</style>
